home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DDJMAG / DDJ9203.ZIP / 80X87.ZIP / SUMARR.ASM < prev    next >
Assembly Source File  |  1992-01-24  |  768b  |  29 lines

  1.  
  2. ; sumarray(), a Borland C++-callable function to sum the values
  3. ; in an array of floats.
  4.  
  5. ; Copyright (C) 1991 by Nicholas Wilt.  All rights reserved.
  6.  
  7. .MODEL  LARGE,C
  8.  
  9. .CODE
  10.  
  11. ; double sumarray(float *arr, int n);
  12. ;   Returns sum of the n elements in arr.
  13.  
  14.     PUBLIC  sumarray
  15.  
  16. sumarray    PROC    ARR:DWORD,N:WORD
  17.     les bx,ARR      ; ES:BX <- pointer to arr
  18.     mov cx,N        ; Get number of elements
  19.     fldz            ; Load zero
  20.     jcxz    LeaveSum    ; Leave if count is 0.
  21. DoSum:  fadd    dword ptr es:[bx] ; Add value in array to ST(0).
  22.     add bx,4        ; Point to next value in array.
  23.     loop    DoSum       ; Loop until done.
  24. LeaveSum:           ; Return value in ST(0).
  25.     ret
  26. sumarray    ENDP
  27.  
  28.     END
  29.